@echo off
chcp 65001 >nul
title 测试前台服务持续更新
color 0E

echo.
echo ╔════════════════════════════════════════════╗
echo ║   测试前台服务 - 后台持续更新              ║
echo ╚════════════════════════════════════════════╝
echo.

echo 前台服务特点：
echo - ✅ 应用退后台也能持续运行
echo - ✅ 通知栏显示运行状态
echo - ✅ 系统不会杀死前台服务
echo - ✅ 100%% 保证持续更新
echo.

pause

echo.
echo [1/5] 编译应用...
call gradlew assembleDebug --quiet
if errorlevel 1 (
    echo ✗ 编译失败！
    pause
    exit /b 1
)
echo ✓ 编译成功

echo.
echo [2/5] 安装应用...
adb install -r app\build\outputs\apk\debug\app-debug.apk 2>nul
if errorlevel 1 (
    echo ✗ 安装失败！
    pause
    exit /b 1
)
echo ✓ 安装成功

echo.
echo [3/5] 授予权限...
adb shell appops set com.example.munidingwei android:mock_location allow
echo ✓ Mock Location 权限已授予

echo.
echo [4/5] 启动应用...
adb shell am start -n com.example.munidingwei/.MainActivity
timeout /t 2 >nul
echo ✓ 应用已启动

echo.
echo [5/5] 启动日志监控...
echo.
echo 📱 请在手机上：
echo 1. 点击地图任意位置设置模拟位置
echo 2. 观察通知栏是否出现"模拟定位运行中"
echo.

start "前台服务日志 - 关注每5秒的输出" cmd /k "adb logcat -c && adb logcat -s LocationForegroundService:D LocationService:D | findstr /C:前台服务 /C:已持续更新"

timeout /t 5 >nul

echo.
echo ════════════════════════════════════════════
echo  测试步骤
echo ════════════════════════════════════════════
echo.
echo 第1步：设置模拟位置
echo ────────────────────────────────
echo - 在应用中点击地图设置位置
echo - ✅ 通知栏出现"模拟定位运行中"
echo.
echo 第2步：观察日志
echo ────────────────────────────────
echo - 日志窗口应该显示：
echo   "前台服务协程已启动"
echo   "前台服务已持续更新 5 次"
echo.
echo 第3步：退到后台（重点！）
echo ────────────────────────────────
echo - 按手机 Home 键
echo - 或切换到其他应用
echo - 📊 观察日志是否继续输出
echo - ✅ 应该每5秒看到一次更新
echo.
echo 第4步：测试其他应用
echo ────────────────────────────────
echo - 打开微信/百度地图
echo - 查看位置共享功能
echo - ✅ 应该快速定位到模拟位置
echo.
echo 第5步：查看通知
echo ────────────────────────────────
echo - 下拉通知栏
echo - 应该看到更新次数增加
echo - 例如："已更新 15 次 | 30.xxx, 120.xxx"
echo.
echo ════════════════════════════════════════════
echo.

pause

echo.
echo 现在开始测试微信...
echo.

adb shell am force-stop com.tencent.mm
timeout /t 2 >nul
adb shell am start -n com.tencent.mm/.ui.LauncherUI

echo.
echo ✅ 微信已启动
echo.
echo 请在微信中测试：
echo - 发送位置
echo - 共享实时位置
echo - 朋友圈发送位置
echo.
echo 同时观察日志窗口，前台服务应该持续输出！
echo.

pause

echo.
echo ════════════════════════════════════════════
echo  测试百度地图
echo ════════════════════════════════════════════
echo.

adb shell am force-stop com.baidu.BaiduMap
timeout /t 2 >nul
adb shell am start -n com.baidu.BaiduMap/com.baidu.baidumaps.WelcomeScreen

echo.
echo ✅ 百度地图已启动
echo.
echo 观察百度地图是否显示模拟位置
echo 同时日志应该持续更新！
echo.

pause

echo.
echo ════════════════════════════════════════════
echo  查看前台服务状态
echo ════════════════════════════════════════════
echo.

echo 当前运行的服务：
adb shell dumpsys activity services com.example.munidingwei

echo.
echo ════════════════════════════════════════════
echo  验证通知
echo ════════════════════════════════════════════
echo.

echo 当前通知：
adb shell dumpsys notification | findstr "模拟定位"

echo.
echo ════════════════════════════════════════════
echo  成功标志
echo ════════════════════════════════════════════
echo.
echo ✅ 成功的标志：
echo.
echo 1. 通知栏有"模拟定位运行中"
echo 2. 日志持续输出"前台服务已持续更新 X 次"
echo 3. 即使应用退后台，日志也不停止
echo 4. 微信/地图能快速定位到模拟位置
echo 5. 通知栏显示更新次数在增加
echo.
echo ✗ 如果失败：
echo - 通知栏没有图标
echo - 日志停止输出
echo - 其他应用获取不到位置
echo.
echo 💡 前台服务优势：
echo - Android 系统不会杀死前台服务
echo - 即使锁屏也能持续运行
echo - 电池优化不影响前台服务
echo.

pause

